#ifndef __screen_h
#define __screen_h
#include <windows.h>
#include <iostream>
using namespace std;

#define LineX 0xffffffcd
#define LineY 0xffffffba
#define Line1 0xffffffc9
#define Line2 0xffffffbb
#define Line3 0xffffffbc
#define Line4 0xffffffc8

#define OLineX 0xffffffc4
#define OLineY 0xffffffb3
#define OLine1 0xffffffda
#define OLine2 0xffffffbf
#define OLine3 0xffffffd9
#define OLine4 0xffffffc0

#define abc_S "abcdefghijklmnopqrstuvwxyz"
#define ABC_S "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define NUM_S "0123456789"
#define TEXT_S "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"


typedef enum btype {BT_ONE,BT_TWO} boxType;

class screen
{
public:
	void static puttext(char *s,int x,int y,int c);
	void static puttext(int i,int x,int y,int c);

	void static putchar(char s,int x,int y,int c);
	void static box(int x1,int y1,int x2,int y2);
	void static cls();

	void static gotoxy(int x,int y);
	int static menu(char **Arr,int size,int starti,char *Header,int StartY);
	void static placemenu(char **Arr,int size,int ystart,int index,char *header,int offset);
	int static getmaxmenulength(char **A,int size);
	char  static *  readvalue(char *title,char *range,int masked,int maxsize,char *msg);
	void static settextcolor(int color);
	void static AnimateBox(int x1,int y1,int width1,int height1,
					int x2,int y2,int width2,int height2,
					int steps,int delay);
	
	void static PopScreen(CHAR_INFO *INFO,bool isfree);
	CHAR_INFO static *  PushScreen();

	void static fillascii(int x0,int y0,int x1,int y1,char chr,char clr);
	void static boxex(char * title,int x1,int y1,int x2,int y2, boxType bt,
					  int foreground,int background);
	void static showcursor(bool a);
	void static MaximizeConsole();
	void static MinimizeConsole();
	CHAR_INFO static getPixel(int x,int y);

	
private:
	


};

#endif